package com.mybatis.strategy;

import com.alibaba.druid.pool.DruidDataSource;
import com.mybatis.dto.request.DatabaseParam;

import java.sql.Connection;
import java.util.List;

/**
 * @desc: 数据库策略类
 * @projectName: mybatis-generator-parent
 * @author: xhs
 * @date: 2023-7-22 022 16:24
 * @version: JDK 1.8
 */
public interface DatabaseStrategy {

    /**
     * 测试连接数据库
     *
     * @param databaseParam 连接数据库入参
     * @return Connection
     */
    Connection databaseConnection(DatabaseParam databaseParam);

    /**
     * 设置数据库连接信息
     *
     * @param databaseParam 数据库连接信息
     * @return DruidDataSource
     */
    DruidDataSource setDataSource(DatabaseParam databaseParam);

    /**
     * 获取数据库中所有表名称
     *
     * @param databaseParam 数据库连接信息
     * @return List<String>
     */
    List<String> getTableList(DatabaseParam databaseParam);
}
